@echo off
color 0A
title Android Keystore 创建工具

:: 设置默认值
set KEYSTORE_FILE=android.keystore
set ALIAS=androidkey
set STORE_PASSWORD=android123
set KEY_PASSWORD=android123
set VALIDITY_DAYS=10000
set ORGANIZATION=Android Organization
set ORGANIZATIONAL_UNIT=Mobile Development
set LOCALITY=Beijing
set PROVINCE=Beijing
set COUNTRY=CN
set KEY_SIZE=2048

:: 检查是否安装了Java
where keytool 2>NUL
if %ERRORLEVEL% NEQ 0 (
    echo 错误: 未找到Java环境，请先安装JDK并配置环境变量。
    echo 安装后请确保keytool命令可在命令行中使用。
    goto :END
)

:: 显示欢迎信息
echo ==============================================
echo Android Keystore 创建工具
echo ==============================================
echo 此工具将帮助您创建Android应用签名所需的keystore文件。
echo ==============================================
echo.

:: 询问用户是否使用默认配置
set /P USE_DEFAULT=是否使用默认配置? (Y/N): 
if /I "%USE_DEFAULT%" EQU "Y" goto :CREATE_WITH_DEFAULTS

:: 用户自定义配置
echo.
echo ---------- 请输入自定义配置 ----------
echo.

set /P KEYSTORE_FILE=keystore文件路径 [%KEYSTORE_FILE%]: 
if "%KEYSTORE_FILE%"=="" set KEYSTORE_FILE=android.keystore

set /P ALIAS=密钥别名 [%ALIAS%]: 
if "%ALIAS%"=="" set ALIAS=androidkey

set /P STORE_PASSWORD=keystore密码 [%STORE_PASSWORD%]: 
if "%STORE_PASSWORD%"=="" set STORE_PASSWORD=android123

set /P KEY_PASSWORD=密钥密码 [%KEY_PASSWORD%]: 
if "%KEY_PASSWORD%"=="" set KEY_PASSWORD=android123

set /P VALIDITY_DAYS=证书有效期(天) [%VALIDITY_DAYS%]: 
if "%VALIDITY_DAYS%"=="" set VALIDITY_DAYS=10000

set /P ORGANIZATION=组织名称 [%ORGANIZATION%]: 
if "%ORGANIZATION%"=="" set ORGANIZATION=Android Organization

set /P ORGANIZATIONAL_UNIT=组织单位 [%ORGANIZATIONAL_UNIT%]: 
if "%ORGANIZATIONAL_UNIT%"=="" set ORGANIZATIONAL_UNIT=Mobile Development

set /P LOCALITY=所在城市 [%LOCALITY%]: 
if "%LOCALITY%"=="" set LOCALITY=Beijing

set /P PROVINCE=所在省份 [%PROVINCE%]: 
if "%PROVINCE%"=="" set PROVINCE=Beijing

set /P COUNTRY=国家代码(ISO 3166-1 alpha-2) [%COUNTRY%]: 
if "%COUNTRY%"=="" set COUNTRY=CN

set /P KEY_SIZE=密钥大小(位) [%KEY_SIZE%]: 
if "%KEY_SIZE%"=="" set KEY_SIZE=2048

:CREATE_WITH_DEFAULTS
echo.
echo ---------- 创建keystore ----------
echo keystore文件: %KEYSTORE_FILE%
echo 密钥别名: %ALIAS%
echo keystore密码: %STORE_PASSWORD%
echo 密钥密码: %KEY_PASSWORD%
echo 证书有效期: %VALIDITY_DAYS% 天
echo 组织名称: %ORGANIZATION%
echo 组织单位: %ORGANIZATIONAL_UNIT%
echo 所在城市: %LOCALITY%
echo 所在省份: %PROVINCE%
echo 国家代码: %COUNTRY%
echo 密钥大小: %KEY_SIZE% 位
echo.

:: 构建keytool命令
set KEYTOOL_CMD=keytool -genkeypair -v -keystore "%KEYSTORE_FILE%" -alias "%ALIAS%" -keyalg RSA -keysize %KEY_SIZE% -validity %VALIDITY_DAYS%
set KEYTOOL_CMD=%KEYTOOL_CMD% -dname "CN=%ALIAS%, OU=%ORGANIZATIONAL_UNIT%, O=%ORGANIZATION%, L=%LOCALITY%, ST=%PROVINCE%, C=%COUNTRY%"
set KEYTOOL_CMD=%KEYTOOL_CMD% -storepass %STORE_PASSWORD% -keypass %KEY_PASSWORD%

:: 执行命令
echo 正在创建keystore...
echo 执行命令: %KEYTOOL_CMD%
echo.

%KEYTOOL_CMD%

:: 检查命令执行结果
if %ERRORLEVEL% NEQ 0 (
    echo.
    echo 错误: 创建keystore失败，请检查上面的输出信息。
) else (
    echo.
    echo ==============================================
    echo keystore创建成功!
    echo keystore文件: %KEYSTORE_FILE%
    echo 请妥善保管您的keystore和密码
    echo ==============================================
)

:END
echo.
echo 按任意键退出...
pause >NUL